﻿hideWinTitle:=0



CapsLock::{
	If (A_TimeSincePriorHotkey!="" and A_TimeSincePriorHotkey <=300 and A_PriorHotkey = "CapsLock" ){
		SetCapsLockState !GetKeyState("CapsLock", "T")
	}
	KeyWait  "CapsLock"
}

;全局快捷键

;以下都是capslock按下时的快捷键
#HotIf GetKeyState("capslock", "P")

;脚本重新加载
F5::Reload

i::up						;√向上
k::down						;√向下
j::left						;√向左
l::right					;√向右
u::home						;√home
o::end						;√end
Space::Enter				;√回车
Enter::send "{end}{Enter}"	;√任意位置回车
lbutton::+home				;√选中光标以前的文字
rbutton::+end				;√选中光标后面的文字

d::del						;向后删除
a:: checkedLine()			;选中光标以前的文字
q::+left					;向左选中一个字符
w::+right					;向右选中一个字符
e::^+left					;向左选中一个单词
r::^+right					;向右选中一个单词
g::^right					;右移一个单词
h::^left					;左移一个单词
s::+home					;选中光标以前的文字


Space & i::+up				;√向上选中
Space & k::+down			;√向下选中
Space & j::+left			;√向左选中
Space & l::+right			;√向右选中
Space & u::+home			;√向前选中
Space & o::+end				;√向后选中
Space & `;::^+right			;右选中一个单词
Space & h::^+left			;左选中一个单词



;功能快捷键
!capslock::Return			;防止先按alt后按capslock的时候切换大小写
^capslock::Return			;防止先按ctrl后按capslock的时候切换大小写
+capslock::Return			;防止先按shift后按capslock的时候切换大小写
!q:: SendInput "^+{f12}"		;√打开quicker
!v:: SendInput "^+v"			;打开ditto
!w:: SendInput "!{F4}"		;alt+f4
!h:: winHideOrShowOne()
!a:: screenshot()			;使用snipaste截图
!l:: ListHotkeys

#HotIf


;SQLyog Ultimate 中的快捷键
#HotIf WinActive("SQLyog Ultimate")
	^Enter::{
		SendInput "{Ctrl Up}"
		SendInput "{F8}"
	}
#HotIf


;使用 snipaste截图
screenshot(){
	snipaste := "C:\Program Files\Snipaste\Snipaste.exe"

	;检查snipaste是否启动

	if (PID := ProcessExist(snipaste)){
		run  snipaste . " " . "snip"
	}else{
		run  snipaste
		;等待snipaste启动,等待10秒
		If (ProcessWait(snipaste, 10)){
			Sleep  1000
			run   snipaste . " " . "snip"
		}
	}
}

;选中一行文字
checkedLine(){
	SendInput "{end}"
	SendInput "+{home}"
}


;显示或隐藏窗口
winHideOrShowOne(){
	if(hideWinTitle==0){
		title := WinGetID("A")
		WinHide title
		global hideWinTitle:=title
	}else{
		WinShow  hideWinTitle
		WinActivate  hideWinTitle
		global hideWinTitle:=0
	}
}